home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / amok_lha / amok59.lha / AmokEd_V1.02b / txt / EdGlobalVars.mod < prev    next >
Text File  |  1993-08-15  |  10KB  |  295 lines

  1. (*************************************************************************
  2.  
  3. :Program.    EdGlobalVars.mod
  4. :Contents.   Global Definitions for AmokEd
  5. :Author.     Hartmut Goebel
  6. :Copyright.  Copyright © 1990 by Hartmut Goebel
  7. :Language.   Oberon
  8. :Translator. Oberon Compiler V2.00
  9. :History.    V0.1, 26 Sep 1990 Hartmut Goebel
  10. :History.    V1.0, 14 Apr 1991 Hartmut Goebel [hG]
  11. :History.    V1.0b 22 Apr 1991 [hG] Window is now 0/0/640/_200_ (NTSC)
  12. :History.    V1.0c 28 Apr 1991 [hG] ignorecase now TextHeader.status-Flag
  13. :History.    V1.1  28 Apr 1991 [hG] + Config
  14. :History.    V1.2  07 Jul 1991 [hG] RECORD -> STRUCT (wg. edL)
  15. :Date.       21 Oct 1991 15:47:14
  16.  
  17. *************************************************************************)
  18.  
  19. MODULE EdGlobalVars;
  20.  
  21. IMPORT
  22.   NoGuruRq,
  23.   d  :Dos,
  24.   e  :Exec,
  25.   eAD:EdApplDefs,
  26.   g  :Graphics,
  27.   I  :Intuition,
  28.   lst:EdLists, (* leicht abgeänderte Verison meines Lists *)
  29.   s  :SYSTEM;
  30.  
  31. CONST
  32.   NumArgs* = 3;
  33.   MaxToggle* = 256;
  34.   ChunkSize* = s.SIZE(e.MemChunk); (* Schrittweite für AllocMem *)
  35.   NumPingPongs* = 10;
  36.   BlockStackSize* = 5;
  37.   FileNameLength* = 64;
  38.   MaxInternToggle* = 16; (* Texteigene Toggles *)
  39.   MaxLineLength* = s.SIZE(e.STRING);
  40.  
  41. TYPE
  42.   StringPtr* = e.STRPTR;
  43.   String*    = e.STRING;
  44.  
  45.   LinePtr* = lst.NodePtr;
  46.   Line* = STRUCT (node*: lst.Node)  (* WICHTIG: Bei Änderungen Offsets *)
  47.     string*: StringPtr;      (* in FindReplace.asm überprüfen!! *)
  48.     len*: INTEGER; (* Länge des allocierten Speichers *)
  49.   END;
  50.  
  51.   TextHeaderPtr* = POINTER TO TextHeader;
  52.   TextHeader* = STRUCT (node*: lst.Node)
  53.     window*: I.WindowPtr;
  54.     line*, topLine*: LONGINT;
  55.     pos*, topPos*: INTEGER;
  56.     lineList*: lst.List;
  57.     actLinePtr*, topLinePtr*: LinePtr;
  58.     numberOfLines*: LONGINT;
  59.     font*: g.TextFontPtr;
  60.     dirLock*: d.FileLockPtr;
  61.     topEdge*, leftEdge*,
  62.     width*, height*: INTEGER; (* Zwischenspeicher f. non-IconMode *)
  63.     iconTop*, iconLeft*: INTEGER; (* Position für IconMode *)
  64.     toggles*: LONGSET; (* texteigene Toggles *)
  65.     status*: LONGSET;  (* StatusFlags dieses Textes *)
  66.     tabStop*, margin*: INTEGER;
  67.     name*: ARRAY FileNameLength OF CHAR;
  68.     wTitle*: ARRAY 100 OF CHAR;
  69.     propGadget*: I.Gadget;
  70.     propInfo*: I.PropInfo; (* für PropGadget *)
  71.     ExtPingPong*: eAD.XPingPongPtr;
  72.   END;
  73.  
  74.   ComProc* = PROCEDURE;
  75.  
  76.   BlockMark* = STRUCT (mark*: lst.Mark)
  77.     SNum*, ENum*: LONGINT;
  78.     Owner*: TextHeaderPtr;
  79.   END;
  80.  
  81.   Configuration* = STRUCT
  82.     edges* : STRUCT
  83.       left*, top*,
  84.       width*, height*: INTEGER;
  85.     END;
  86.     screenDepth*: INTEGER;
  87.   END;
  88.  
  89. CONST
  90.   (* Berechnung: ((x+c-1) DIV c) * c     *)
  91.   LineAllocSize* = ((s.SIZE(Line)+ChunkSize)-1) DIV ChunkSize * ChunkSize;
  92.  
  93.   (* TextHeader.status-flags *)
  94.   macroWithQuit* = 0;
  95.   quit* = 1;
  96.   modified* = 2;
  97.   wordWrap* = 3;
  98.   saveTabs* = 4;
  99.   iconMode* = 5;
  100.   keepTitle* = 6;  (* only for Applications and Rexx-Macros *)
  101.   autoIndent* = 7;
  102.   insertMode* = 8;
  103.   ignoreCase* = 9; (* ignore case for search etc. *)
  104.  
  105. VAR
  106.   Text*: TextHeaderPtr; (* der derzeit aktive Text *)
  107.   Arg*: ARRAY NumArgs OF StringPtr;
  108.   ArgSet*: SET; (* argument flags *)
  109.   LineBuffer*: ARRAY MaxLineLength OF CHAR;
  110.   LineBufferLen*: INTEGER; (* _Anzahl_ Zeichen im LineBuffer *)
  111.   Status*: LONGSET;
  112.   NoScreenUpdate*: INTEGER; (* Used in formatter to disable screen updates *)
  113.   Rc*: INTEGER; (* interner Returncode *)
  114.   ErrorCode*: INTEGER; (* for Applications notice *)
  115.   RecLevel*: INTEGER;
  116.   EditList*: lst.List;
  117.   RPort*: g.RastPortPtr;     (* *)
  118.   XSize*, YSize*: INTEGER;   (* Werte    *)
  119.   XTBase*, YTBase*: INTEGER; (* für das  *)
  120.   XBase*, YBase*: INTEGER;   (* aktuelle *)
  121.   XPixs*, YPixs*: INTEGER;   (* Fenster  *)
  122.   Columns*, Rows*: INTEGER;  (* *)
  123.   Mx*,My*: INTEGER;
  124.   Particial*: StringPtr;
  125.   FindStr*, ReplaceStr*, ScanStr*: StringPtr;
  126.   recallBuffer*: StringPtr;
  127.   DelLinePtr*: LinePtr;
  128.   Toggles*: ARRAY 8 OF LONGSET; (* 256 toggles *)
  129.   Block*: BlockMark;
  130.   BStack*: ARRAY BlockStackSize OF BlockMark;
  131.   BStackCurrDepth*: INTEGER;
  132.   TempHeight*, TempWidth*: INTEGER;
  133.   Config*: Configuration;
  134.   Screen*: I.ScreenPtr;
  135.   WBScreenDepth*: INTEGER;
  136.   PingPong*: ARRAY NumPingPongs OF STRUCT
  137.     txt*: TextHeaderPtr;
  138.     line*: LONGINT; (* erst alle LONG, wg. .L-Allign *)
  139.     pos*: INTEGER;
  140.   END;
  141.   MainPort*: e.MsgPortPtr;
  142.   MainReq*: e.IOStdReqPtr;
  143.   AEdrxPort*: ARRAY 12 OF CHAR; (* "AEd........\0" *)
  144.   CtrlC*: BYTE; (* RawKeyCode of Ctrl-C *)
  145.  
  146. CONST
  147.   (* edG.StatusFlags *)
  148.   kick20*=0; (* indicates if KickStart 2.0 is available *)
  149.   isAppl*=1; (* cmd from Application *)
  150.   isRexx*=2; (* cmd from Rexx *)
  151.   numLock*=3;  (* NumLock on NumPad *)
  152.   quitQuit*=4; (* last Window has been closed *)
  153.   msgCheck*=5; (* Force message queue check for break *)
  154.   cmdFound*=6; (* control for implicit ARexx macro invocation *)
  155.   noCursor*=7; (* used in Source only *)
  156.   arexxAvail*=8; (* ARexx is installed *)
  157.   memoryFail*=9; (* out of Memory *)
  158.   breakCheck*=10;
  159.   disposeString*=11;
  160.   commLineMode*=12;
  161.   fileReqAvail*=13; (* ARP or ASL Filereq. available *)
  162.   alreadyRedrawn*=15; (* TextSync has Redisplaied Text *)
  163.   dontReplyIntuiMsg*=16; (* 'cause Window has been closed *)
  164.   multiMode*=17; (* indicates MultireplaceMode *)
  165.  
  166.   (* Texte für den Titel *)
  167.   Spaces* = "          \o";
  168.   unNamed* = "unnamed";
  169.   RecTooDeep* = "Recursion too deep!";
  170.   CommNotFound* = "Command not found!";
  171.   CommandTooComplex* = "Command too complex";
  172.   RexxOnlyCommand* = "RexxOnly-Command!!";
  173.   UnknownCommand* = "Unknown Command";
  174.   BadArgument* = "Bad Argument!";
  175.   NoMemory* = " -- NO MEMORY -- ";
  176.   Okay* = "Okay";
  177.   Cancel* = "Cancel";
  178.   Copyright* = "AmokEd V1.02b \251Copyright 1990-91 by hartmut Goebel, All Rights Reserved";
  179.   Version* = "AmokEd V1.02b 21 Oct 1991 [hG]";
  180.   ErrorMarginOver124* = "Error, Margin > 124";
  181.  
  182. (*  searchTags = "search tags";
  183.   tagsError = "tags error";
  184.   tagNotFound = "tag not found";
  185.   unableToLoadFile = "unable to load file";
  186.   dreslibraryNotInstalled = "dres.library not installed";
  187.   searchrefs = "search .refs";
  188.   ReferenceNotFound = "Reference not found";
  189.   searchFile = "search file";
  190.   UnableToOpenDmeRefForWrite = "Unable to open t:dme_ref for write";
  191.   SearchFailed = "Search failed";
  192.   UnableToOpenSubDocument = "Unable to open sub document";
  193. *)
  194. TYPE
  195.   BorderVectorType = ARRAY 13 OF g.Point;
  196.  
  197. CONST
  198.   Border3Vectors = BorderVectorType(
  199.     0,0, 5,0, 5,5,  3,5,   6,8,  7,8, 10,5,
  200.     8,5, 8,0, 14,0, 14,10, 0,10, 0,0);
  201.  
  202.   Border3 = I.Border(
  203.     0,-1,       (* XY origin relative to container TopLeft *)
  204.     1,0,g.jam1, (* front pen, back pen and drawmode *)
  205.     13,         (* number of XY vectors *)
  206.     s.ADR(Border3Vectors), (* pointer to XY vectors *)
  207.     NIL);        (* next border in list *)
  208.  
  209.   (* arrow down *)
  210.   Gadget3 = I.Gadget(
  211.     NIL,       (* next gadget *)
  212.     -15,-18,   (* origin XY of hit box relative to window TopLeft *)
  213.     16,9,      (* hit box width and height *)
  214.     {I.gRelBottom,I.gRelRight},                  (* gadget flags *)
  215.     {I.relVerify,I.gadgImmediate,I.rightBorder}, (* activation flags *)
  216.     I.boolGadget,     (* gadget type flags *)
  217.     s.ADR(Border3), (* gadget border or image to be rendered *)
  218.     NIL,   (* alternate imagery for selection *)
  219.     NIL,   (* first IntuiText structure *)
  220.     LONGSET{},   (* gadget mutual-exclude long word *)
  221.     NIL,   (* SpecialInfo structure *)
  222.     3,     (* user-definable data *)
  223.     NIL);    (* pointer to user-definable data *)
  224.  
  225.   Border2Vectors = BorderVectorType(
  226.     0,0, 14,0, 14,10, 8,10, 8,5,  10,5, 7,2,
  227.     6,2, 3,5,  5,5,   5,10, 0,10, 0,0);
  228.  
  229.   Border2 = I.Border(
  230.     0,-1,       (* XY origin relative to container TopLeft *)
  231.     1,0,g.jam1, (* front pen, back pen and drawmode *)
  232.     13,         (* number of XY vectors *)
  233.     s.ADR(Border2Vectors), (* pointer to XY vectors *)
  234.     NIL);        (* next border in list *)
  235.  
  236.   (* arrow up *)
  237.   Gadget2 = I.Gadget(
  238.     s.ADR(Gadget3),       (* next gadget *)
  239.     -15,-28,   (* origin XY of hit box relative to window TopLeft *)
  240.     16,9,      (* hit box width and height *)
  241.     {I.gRelBottom,I.gRelRight},                  (* gadget flags *)
  242.     {I.relVerify,I.gadgImmediate,I.rightBorder}, (* activation flags *)
  243.     I.boolGadget,     (* gadget type flags *)
  244.     s.ADR(Border2), (* gadget border or image to be rendered *)
  245.     NIL,   (* alternate imagery for selection *)
  246.     NIL,   (* first IntuiText structure *)
  247.     LONGSET{},   (* gadget mutual-exclude long word *)
  248.     NIL,   (* SpecialInfo structure *)
  249.     2,     (* user-definable data *)
  250.     NIL);  (* pointer to user-definable data *)
  251.  
  252.   Gadget1SInfo* = I.PropInfo(
  253.     {I.autoKnob,I.freeVert,I.propNewLook},  (* PropInfo flags *)
  254.     -1,-1,  (* horizontal and vertical pot values *)
  255.     -1,-1,  (* horizontal and vertical body values *)
  256.     0,0,0,0,0,0);  (* <- ob das stimmt? *)
  257.  
  258.   Image1 = I.Image(
  259.     0,0,    (* XY origin relative to container TopLeft *)
  260.     7,80,   (* Image width and height in pixels *)
  261.     0,      (* number of bitplanes in Image *)
  262.     NIL,    (* pointer to ImageData *)
  263.     SHORTSET{},SHORTSET{},  (* PlanePick and PlaneOnOff *)
  264.     NIL);   (* next Image structure *)
  265.  
  266.   (* scroll bar *)
  267.   Gadget1* = I.Gadget(
  268.     s.ADR(Gadget2),       (* next gadget *)
  269.     -15,10, (* origin XY of hit box relative to window TopLeft *)
  270.     16,-40, (* hit box width and height *)
  271.     {I.gadgHBox,I.gadgHImage,I.gRelRight,I.gRelHeight},(* gadget flags *)
  272.     {I.relVerify,I.gadgImmediate,I.rightBorder},   (* activation flags *)
  273.     I.propGadget,     (* gadget type *)
  274.     s.ADR(Image1),  (* gadget border or image to be rendered *)
  275.     NIL,   (* alternate imagery for selection *)
  276.     NIL,   (* first IntuiText structure *)
  277.     LONGSET{},   (* gadget mutual-exclude long word *)
  278.     s.ADR(Gadget1SInfo), (* SpecialInfo structure *)
  279.     1,NIL); (* user-definable data *)
  280.  
  281.   StdWindow* =  I.NewWindow(0,0,640,200,0,1,
  282.     LONGSET{I.closeWindow,I.newSize,I.rawKey,I.mouseButtons,I.activeWindow,
  283.             I.mouseMove,I.menuPick,I.gadgetUp,I.gadgetDown},
  284.     LONGSET{I.windowSizing,I.windowDrag,I.windowDepth,I.windowClose,
  285.             I.noCareRefresh,I.activate,I.rmbTrap},
  286.     NIL,NIL,s.ADR(Copyright),NIL,NIL,125,32,-1,-1,{I.wbenchScreen});
  287.  
  288. PROCEDURE ExecCmd * {"EdParser.doCommand"} (Buffer: StringPtr);
  289. PROCEDURE BreakOut* {"EdParser.BreakOut"} (VAR ptr,paux: StringPtr): StringPtr;
  290. PROCEDURE SetProp * {"EdGadgets.SetProp"};
  291. PROCEDURE SetPropKnob* {"EdGadgets.SetPropKnob"};
  292.  
  293. END EdGlobalVars.
  294.  
  295.